//1. 引入二次封装的请求方法
import request from '../../utils/request.js'

//2. 定义状态管理的数据

// 存储模块数据
const state = {
	homeInfo:{},
	homeCardListData:[]
}

// 处理异步操作
//1. 获取主页推荐页面的数据
const actions = {
	async getHomeInfoData({commit}){
		try{
			const result = await request({url:'/getIndexData'})
			commit('SET_HOME_INFO_DATA',result)
			//console.log('111',result)
		}catch(e){
			//TODO handle the exception
			console.log(e.message)
		}
	},
	//2. 获取主页面导航项中分类的数据
	async getHomeCardListData({commit}){
		try{
			const result = await request({url:'/getIndexCateList'})
			/* console.log('111',result) */
			commit('SET_HOME_CARD_LIST_DATA',result)
		}catch(e){
			//TODO handle the exception
			console.log(e.message)
		}
	}
} 

// 专门修改state里面的数据 赋值 修改 删除之类
const mutations = {
	//1. 保存数据
	SET_HOME_INFO_DATA(state,homeInfo){
		state.homeInfo = homeInfo
	},
	//2. 保存主页面分类数据
	SET_HOME_CARD_LIST_DATA(state,cardListData){
		state.homeCardListData = cardListData
	},
	
} 

// store里面的计算属性
const getters = {
	//1. navList首页导航项数据
	navList(state){
		//?.可选链
		return state.homeInfo.kingKongModule?.kingKongList
		//原始方法
		//return (state.homeInfo.kingKongModule || {}).kingKongList || []
	},
	//2. slogan内容口号数据
	sloganList(state){
		return state.homeInfo.policyDescList || []
	},
	//3. floors楼层数据
	floorsList(state){
		return state.homeInfo.categoryModule || []
	}
} 

//3. 导出对象
export default {
	namespaced:true, // 开启命名空间
	state,
	actions,
	mutations,
	getters
}